﻿/***********************************************************************************************
 * 
 * ProjectName: WMSSoft.Lib.WinKStart
 * 
 * Description: Class to Save a Configuration - Object for a WinKStartFunction
 * 
 * Created:     06.09.2014
 * 
 * Author:      matthias wagler - matthias@WMSSoft.de
 * 
 * Copyright:   Copyright 2012 by WMSSoft.net
 * 
 * License:     GPLv3
 * 
 * History:     06.09.2014 - matthias wagler matthias@WMSSoft.de   -   Created
 * 
 **********************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMSSoft.Lib.Basic;
using WMSSoft.Lib.WinKStart.Abstract;

namespace WMSSoft.Lib.WinKStart.Model.MenuConfig
{
    /// <summary>
    /// Contains a Configration - Object for a WinKStartFunction
    /// </summary>
    public class cWinKStartFunction : CModelBase
    {
        private string m_sName = "";
        private string m_sAssembly = "";
        private string m_sClassName = "";
        private string m_sDataSource = "";
        private string m_sFilter = "";
        private Dictionary<string, KeyValueAssignment> m_Options = new Dictionary<string, KeyValueAssignment>();

        /// <summary>
        /// Unique Name for this function
        /// </summary>
        public string Name
        {
            get { return m_sName; }
            set 
            { 
                m_sName = value;
                OnPropertyChanged();
            }
        }

        /// <summary>
        /// Assembly that contains the Function - Code
        /// </summary>
        public string Assembly
        {
            get { return m_sAssembly; }
            set 
            { 
                m_sAssembly = value;
                OnPropertyChanged();
            }
        }

        /// <summary>
        /// Name of the Class that Contains the Code for this
        /// </summary>
        public string ClassName
        {
            get { return m_sClassName; }
            set 
            { 
                m_sClassName = value;
                OnPropertyChanged();
            }
        }

        /// <summary>
        /// DataSoure to work with
        /// </summary>
        public string DataSource
        {
            get { return m_sDataSource; }
            set 
            { 
                m_sDataSource = value;
                OnPropertyChanged();
            }
        }

        /// <summary>
        /// Sub - Folder in DataList to work with
        /// </summary>
        public string Filter
        {
            get { return m_sFilter; }
            set 
            { 
                m_sFilter = value;
                OnPropertyChanged();
            }
        }

        public Dictionary<string, KeyValueAssignment> Options
        {
            get { return m_Options; }
            set 
            { 
                m_Options = value;
                OnPropertyChanged();
            }
        }
    }
}
